// 管理用户的token
// 导入操作 cookies 的方法
import { getToken, setToken, delToken } from '@/utils/auth'

// 导入登录的接口
import { loginApi } from '@/api/user.js'

const state = {
  // 保存 token
  token: getToken() || ''
}
const mutations = {
  // 给 token 赋值
  setToken(state, payload) {
    // 存tonken
    // 存在vuex中
    state.token = payload
    // 存在 cookies中
    setToken(payload)
  },
  // 删除 token
  removeToken(state) {
    // 清除 vuex 中的token
    state.token = null
    // 清除 cookies 中的 token
    delToken()
  }
}

const actions = {
  // 封装一个方法用来登录
  async login(ctx, data) {
    // 调用登录接口
    const res = await loginApi(data)
    console.log(123)
    // 修改 token 状态
    ctx.commit('setToken', res.data.data)
  }
}

// 暴露一个模块对象
export default {
  namespaced: true,
  state,
  mutations,
  actions
}
